package com.class06;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


import java.io.IOException;
@WebServlet("/servletA")
public class ServletA extends HttpServlet {

//    请求转发特性：
//    1、通过HttpServletRequest对象获取RequestDispatcher转发器对象，然后调用forward方法
//    2、是服务器内部转发，浏览器地址栏不会变化，客户端不可见
//    3、客户端只产生一次请求，主要由HttpServletRequest对象传递
//
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        System.out.println("servletA");

//        req.getRequestDispatcher().var
//        getRequestDispatcher()方法主要获取转发器对象
//        http://localhost:8080/servletB
//        /servletB这是绝对路径，
//        http://localhost:8080/servletA?username=lisi
//        getParameter() 和 getAttribute()方法获取的是同一个值，
//        但是getParameter()方法获取的是请求参数，
//        而getAttribute()方法获取的是请求域对象中的属性值
        Object username = req.getParameter("username");
        System.out.println(username);
        req.setAttribute("user_name",username);

        RequestDispatcher requestDispatcher =
                req.getRequestDispatcher("/servletB");
//        forward() 进行转发
        requestDispatcher.forward(req,resp);
    }
}
